package com.ojoin.ojoin.eb_spider.service.stat;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.ojoin.ojoin.eb_spider.utils.WebServiceUtils;
import com.ojoin.trade.common.utils.CommonUtils;
import com.ojoin.trade.common.utils.LogUtils;
import com.ojoin.trade.common.utils.TimeUtils;
import com.ojoin.trade.supplyloan_core.web.domain.TbCatchdataStrategy;
import com.ojoin.trade.supplyloan_core.web.domain.TbSlLoanStatTotal;
import com.ojoin.trade.supplyloan_core.web.domain.TbSlPlatformUser;
import com.ojoin.trade.supplyloan_core.web.domain.TbSlSupplyInventory;
import com.ojoin.trade.supplyloan_core.web.domain.TbSlSupplyPayment;

public class BaseStatTotal implements StatTotal {

	private Logger log = LoggerFactory.getLogger(BaseStatTotal.class);

	
	@Override
	public void invoke(TbSlPlatformUser user, TbCatchdataStrategy ca,TbSlLoanStatTotal total)
			throws Exception {

		String stime = WebServiceUtils.getPaymentLastsettlementDate(
				user.getId()).replace("/", "-");

		if (CommonUtils.isEmpty(stime)) {
			stime = WebServiceUtils.getPaymentLastInsertTime(user.getId());
		}

		String etime = TimeUtils.getCurDate();

		long inveInMoney = WebServiceUtils
				.getSupplyInventoryMoneyByplateformId(user.getId(),ca, stime,
						etime, TbSlSupplyInventory.IN);

		long inveOutMoney = WebServiceUtils
				.getSupplyInventoryMoneyByplateformId(user.getId(), ca,stime,
						etime, TbSlSupplyInventory.OUT);

		long paymoney = WebServiceUtils.getSupplyPaymentMoneyByplateformId(
				user.getId(),ca, TimeUtils.getDateBefore(ca.getSettlementInterval()), etime, TbSlSupplyPayment.WAITPAY);

		total.setTotalUnsettleInstoreorder(Long.valueOf(inveInMoney));
		total.setTotalUnenterinRefundorder(Long.valueOf(inveOutMoney));
		total.setTotalUnpaySettleorder(Long.valueOf(paymoney));

		LogUtils.info(
				log,
				" %s-->[ store all in %s ] + [all Unpay] [settlementDate %s]",
				user.getUsername(), inveInMoney, stime);

	}

}
